const HtmlWebpackPlugin = require("html-webpack-plugin"); //模板插件
const { Configuration } = require("webpack"); //加提示的
const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin"); //暴露模块出去， 这个是webpack5自带的，实现联邦技术的必要条件
/**
 * @type {Configuration} //配置注解提示
 */

const config = {
  mode: "none",
  entry: "./index.js",
  output: {
    filename: "bundle.js",
  },
  devServer: {
    port: 9001,
  },
  plugins: [
    // 指定模板
    new HtmlWebpackPlugin({
      template: "./index.html",
    }),
    new ModuleFederationPlugin({
      name: "remote", //名字可以随便起
      filename: "remoteEntry.js", //这个也可以随便起
      //暴露模块
      exposes: {
        "./addList": "./list.js", //key随便起（远程调用时用后面的addList）， value是要暴露的文件路径
      },
    }),
  ],
};

module.exports = config;
